<!doctype html>



  


<html class="theme-next muse use-motion" lang="zh-Hans">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>






<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />















  
  
  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />




  
  
  
  

  
    
    
  

  

  

  

  

  
    
    
    <link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
  






<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=5.1.1" rel="stylesheet" type="text/css" />


  <meta name="keywords" content="-PHP," />








  <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=5.1.1" />






<meta name="description" content="php必须掌握的基础知识PHP的数据类型字符串（string） 整形（integer） 浮点型（float或者double） 布尔型（boolean） 数组（Array） 对象（Object） 资源（Resource） 字符串页面中需要显示的文字，在PHP代码中我们使用单引号或者双引号包含 作为一些技巧性的使用，如果字符串中含有单引号，那么字符串可以使用双引号包含 $var = “‘foo’”;">
<meta name="keywords" content="-PHP">
<meta property="og:type" content="article">
<meta property="og:title" content="php必须掌握的基础知识">
<meta property="og:url" content="http://yoursite.com/2017/06/08/phplore/index.html">
<meta property="og:site_name" content="韩月">
<meta property="og:description" content="php必须掌握的基础知识PHP的数据类型字符串（string） 整形（integer） 浮点型（float或者double） 布尔型（boolean） 数组（Array） 对象（Object） 资源（Resource） 字符串页面中需要显示的文字，在PHP代码中我们使用单引号或者双引号包含 作为一些技巧性的使用，如果字符串中含有单引号，那么字符串可以使用双引号包含 $var = “‘foo’”;">
<meta property="og:updated_time" content="2017-06-30T04:06:18.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="php必须掌握的基础知识">
<meta name="twitter:description" content="php必须掌握的基础知识PHP的数据类型字符串（string） 整形（integer） 浮点型（float或者double） 布尔型（boolean） 数组（Array） 对象（Object） 资源（Resource） 字符串页面中需要显示的文字，在PHP代码中我们使用单引号或者双引号包含 作为一些技巧性的使用，如果字符串中含有单引号，那么字符串可以使用双引号包含 $var = “‘foo’”;">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Muse',
    sidebar: {"position":"left","display":"post","offset":12,"offset_float":0,"b2t":false,"scrollpercent":false},
    fancybox: true,
    motion: true,
    duoshuo: {
      userId: '0',
      author: '博主'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>



  <link rel="canonical" href="http://yoursite.com/2017/06/08/phplore/"/>





  <title>php必须掌握的基础知识 | 韩月</title>
</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">

  





  <script type="text/javascript">
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?29caf0cef6e0beec50a83c0dcae17a3b";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
  </script>










  
  
    
  

  <div class="container sidebar-position-left page-post-detail ">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/"  class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">韩月</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
      
        <p class="site-subtitle"></p>
      
  </div>

  <div class="site-nav-toggle">
    <button>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
            
            首页
          </a>
        </li>
      
        
        <li class="menu-item menu-item-categories">
          <a href="/categories" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
            
            分类
          </a>
        </li>
      
        
        <li class="menu-item menu-item-test">
          <a href="/test" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-eye"></i> <br />
            
            测试
          </a>
        </li>
      
        
        <li class="menu-item menu-item-menus">
          <a href="/menus" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-bars"></i> <br />
            
            菜单
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/archives" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
            
            归档
          </a>
        </li>
      
        
        <li class="menu-item menu-item-tags">
          <a href="/tags" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
            
            标签
          </a>
        </li>
      

      
    </ul>
  

  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  

  
  
  

  <article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2017/06/08/phplore/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="韩月">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/uploads/avatars.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="韩月">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
            
            
              
                php必须掌握的基础知识
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">发表于</span>
              
              <time title="创建于" itemprop="dateCreated datePublished" datetime="2017-06-08T01:33:51+08:00">
                2017-06-08
              </time>
            

            

            
          </span>

          

          
            
              <span class="post-comments-count">
                <span class="post-meta-divider">|</span>
                <span class="post-meta-item-icon">
                  <i class="fa fa-comment-o"></i>
                </span>
                <a href="/2017/06/08/phplore/#comments" itemprop="discussionUrl">
                  <span class="post-comments-count disqus-comment-count"
                        data-disqus-identifier="2017/06/08/phplore/" itemprop="commentCount"></span>
                </a>
              </span>
            
          

          
          
             <span id="/2017/06/08/phplore/" class="leancloud_visitors" data-flag-title="php必须掌握的基础知识">
               <span class="post-meta-divider">|</span>
               <span class="post-meta-item-icon">
                 <i class="fa fa-eye"></i>
               </span>
               
                 <span class="post-meta-item-text">阅读次数 </span>
               
                 <span class="leancloud-visitors-count"></span>
             </span>
          

          

          

          

        </div>
      </header>
    

    <div class="post-body" itemprop="articleBody">

      
      

      
        <h1 id="php必须掌握的基础知识"><a href="#php必须掌握的基础知识" class="headerlink" title="php必须掌握的基础知识"></a>php必须掌握的基础知识</h1><p>PHP的数据类型<br>字符串（string） 整形（integer） 浮点型（float或者double） 布尔型（boolean） 数组（Array） 对象（Object） 资源（Resource）</p>
<h2 id="字符串"><a href="#字符串" class="headerlink" title="字符串"></a>字符串</h2><p>页面中需要显示的文字，在PHP代码中我们使用单引号或者双引号包含 作为一些技巧性的使用，如果字符串中含有单引号，那么字符串可以使用双引号包含 $var = “‘foo’”; 同理，如果字符串中含有双引号，则可以使用单引号包含 $var = ‘”bar”‘; 如果双引号包含的字符串中要显示双引号，或者单引号包含的字符串中要显示单引号，我们可以添加转义符（一个斜杠\） $var = ‘\’foo\”;$var = “\”bar\””;</p>
<h2 id="单引号和双引号"><a href="#单引号和双引号" class="headerlink" title="单引号和双引号"></a>单引号和双引号</h2><p>PHP中字符串使用单引号还是双引号并没有严格的约定 实际上，引号是可以随意使用的，只要注意不要混用，引号必须配对即可 唯一的不同就是变量的问题，双引号中可以直接将变量转换为值，而单引号不行，请问下面的代码会输出什么？</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$name = “andy”;</div><div class="line">echo ‘my name is $name’;</div><div class="line">echo “my name is $name”;</div></pre></td></tr></table></figure>
<p>PHP初学者最容易犯的一个错误就是忘记给文字加引号 “hello” 这是字符串 $hello 这是变量 hello 系统会认为这是一个常量<br>常见的十进制整型我们无需多说 $var = 100; // 使用var_dump输出是int(100) 另外，在PHP中，我们还可以设置其他进制的整型</p>
<h2 id="运算与赋值"><a href="#运算与赋值" class="headerlink" title="运算与赋值"></a>运算与赋值</h2><p>简单的说就是我们平时常用的加减乘除运算，我们下面会重点介绍一下浮点数加减的问题，%的使用场合，以及++和—的使用</p>
<ul>
<li>加法运算<br>–    减法运算</li>
</ul>
<ul>
<li>乘法运算<br>/    除法运算<br>%    求余运算<br>++    递增运算（加1）<br>—-    递减运算（减1）<br>3.使用number_format，我们可以将一个小数的小数点后的位数保留到指定的值 string number_format ( float $number [, int $decimals = 0 ] ) 将浮点数作为第一个参数传递，第二个参数设置小数点后保留的位数 echo number_format($x – $y, 2); // 结果为0.07<h2 id="取余操作"><a href="#取余操作" class="headerlink" title="取余操作%"></a>取余操作%</h2>假设，我们有42篇文章，我们打算一页显示10篇，则从数学方面来分析，最后一页显示几篇文章？<br>整数商为4 余数 = 42 – 4*10 = 2 相当于PHP的计算 42 % 10 = 2<h2 id="递增和递减"><a href="#递增和递减" class="headerlink" title="递增和递减"></a>递增和递减</h2>$var–; 相当于执行 $var = $var – 1; 同理，$var++相当于执行 $var = $var + 1;<br>单个变量直接执行递增或者递减，不论符号放在左侧还是右侧都没有差别。 $var = 10; $var–; // 或者 –$var echo $var; // 结果都是9 但是，作为PHP的一个特殊性，如果操作符在赋值语句右侧的话，需要区分前后顺序 $var = 10; $output = $var–; // 或者 $output = –$var; echo $output; // 两个结果一个是10另一个是9 $output = $var–;相当于先将$var赋值给$output再执行递减运算<h2 id="字符串运算符"><a href="#字符串运算符" class="headerlink" title="字符串运算符"></a>字符串运算符</h2>PHP的字符串运算符只有一个，就是我们常说的连字符.（一个英文的点号），使用它我们可以将几段文字连接在一起显示 $str = “i”;     echo $str . “phone”; // 输出iphoneecho $str . 123; // 输出i123$str2 = “pad”;echo $str . $str2; // 输出ipad<br>连字符的大量使用，会导致文本难以阅读，代码凌乱，推荐使用格式化输出，假设有两个变量$num和$loc，分别表示数量和地点 $num = 5;$loc = “树”; 如果直接用连字符输出下面的文字 echo $loc . “上有” . $num . “只猴子”;<h2 id="sprintf"><a href="#sprintf" class="headerlink" title="sprintf"></a>sprintf</h2>上面的代码很难看出来要显示的是什么文字，使用sprintf函数来代替 $format = ‘%s上有%d只猴子’;echo sprintf($format, $loc, $num);<h2 id="赋值运算符"><a href="#赋值运算符" class="headerlink" title="赋值运算符"></a>赋值运算符</h2>赋值运算实际上是将右侧表达式的值赋给左侧变量；或者说是将原表达式的值拷贝到新变量中<br>=    赋值    右侧表达式的值赋给左侧变量<br>+=    赋值加    左侧原变量加上右侧变量后，值赋给原变量<br>-=    赋值减    左侧原变量减去右側变量后，值赋给原变量<br>*=    赋值乘    左侧原变量乘以右侧变量后，值赋给原变量<br>/=    赋值除    左侧原变量除以右侧变量后，值赋给原变量<br>%=    赋值取余    左侧原变量与右侧变量取余，值赋给原变量<br>.=    字符串赋值    左侧变量后连接到右侧原变量后，值赋给原变量<h2 id="加减乘除赋值"><a href="#加减乘除赋值" class="headerlink" title="加减乘除赋值"></a>加减乘除赋值</h2>+=、-=、*=、/=、%=、.= 上面六个运算符，看复杂，实际上只是一种 缩写 A ?= B 全部都可以理解为 A = A ? B 其中?代表任意的运算符号，因此 $foo += $bar;  相当于执行了 $foo = $foo + $bar;<h2 id="字符串赋值"><a href="#字符串赋值" class="headerlink" title="字符串赋值.="></a>字符串赋值.=</h2>字符串赋值平时最常用的用法是用来连接大段的文本，看下面的例子： $html = “<html>”;$html .= “<head>”;$html .= “<title>”  . $title . “</title>”;$html .= “</head>”;$html .= “<body>”;// ……echo $html; 当我们需要将很多段的文本片段连接到一起，又想保持代码的整洁，同时让逻辑看起来也很清晰，就可以是使用字符串赋值，实际上使用heredoc更清晰简单。<h2 id="比较运算符"><a href="#比较运算符" class="headerlink" title="比较运算符"></a>比较运算符</h2>比较运算符负责条件判断、比较等操作，是程序中经常被用到的一种运算符。比较运算的结果只有两种：要么是“真”，要么是“假”。<br>运算符    功能    说明<br>>    大于    运算符左边表达式值大于右边表达式值时，返回true<br>&lt;    小于    运算符左边表达式值小于右边表达式值时，返回true<br>>=    大于等于    运算符左边表达式值大于等于右边表达式值时，返回true<br>&lt;=    小于等于    运算符左边表达式值小于等于右边表达式值时，返回true<br>==    相等    运算符左右两边表达式的值相等，返回true<br>!=    不等    运算符左右两边表达式的值不相等，返回true<br>&lt;&gt;    不等    运算符左右两边表达式的值不相等，返回true</body></html></li>
</ul>
<h2 id="比较运算符-1"><a href="#比较运算符-1" class="headerlink" title="比较运算符"></a>比较运算符</h2><p>基本的比较运算符我们不用多介绍，下面介绍一种比较特殊的比较运算符：恒等。在判断值是否相等的前提下，还会判断类型是否一样<br>运算符    功能    说明<br>===    恒等    运算符左右两边表达式的值相等并且类型一样，返回true<br>!==    非恒等    运算符左右两边表达式的值不相等或者类型不一样，返回true<br>在PHP中，下面所有的值都表示空：null、false、array()、””、0、”0″。 如果使用==，则 null == false、0 == “0”、null== array()、false == “”……都是返回true，而使用===则会返回false</p>
<h2 id="逻辑运算符"><a href="#逻辑运算符" class="headerlink" title="逻辑运算符"></a>逻辑运算符</h2><p>逻辑运算有点类似前面讲过的位运算的方式，但逻辑运算更侧重在程序书写和日常开发中使用，比如 if switch 语句等。PHP提供了逻辑与、或、异或、非等逻辑运算符。<br>AND    逻辑与    当所有表达式为true时，返回true，否则返回false<br>OR    逻辑或    当所有表达式为false时，返回false，否则返回true<br>XOR    逻辑异或    只有一个表达式为true时，返回true，否则返回false<br>&amp;&amp;    逻辑与    当所有表达式为true时，返回true，否则返回false<br>||    逻辑或    当所有表达式为false时，返回false，否则返回true<br>!    逻辑非    当表达式为true时返回false，反之返回true<br>假设： $x = 8; $y = 6; 那么： $x + $y &gt; 10; // 返回的是真$x – $y &lt; 0; // 返回的是假 把两个比较运算放在一起进行逻辑运算的结果是什么？ $result = ($x + $y &gt; 10) &amp;&amp; ($x – $y &lt; 0);$result = ($x + $y &gt; 10) || ($x – $y &lt; 0);$result = !($x – $y &lt; 0);</p>
<h2 id="条件语句"><a href="#条件语句" class="headerlink" title="条件语句"></a>条件语句</h2><p>简单的IF语句由两部分组成，expr是我们的表达式，而statement是我们需要执行的代码；当expr为true的时候，statement被执行；反之，则被忽略 if (expr) statement expr必须放在一对圆括号中间<br>if ($dir == ‘west’)<br>echo ‘西’;<br>还是前面的代码，我么稍作修改，执行的结果应该是什么？<br>$dir = ‘east’; if ($dir == ‘west’)  {<br>echo ‘当前方向为’;<br>} else {<br>echo ‘西’;<br>}<br>有时候我们不仅仅需要判断当expr条件为true时执行什么语句，另外，当expr条件为false时需要执行什么 if ($dir == ‘west’) {    echo ‘西’;} else {    echo ‘其它方向’;}</p>
<h2 id="三目运算符"><a href="#三目运算符" class="headerlink" title="三目运算符"></a>三目运算符</h2><p>PHP有一个特殊的运算符，我们在之前学习运算符的时候并没有介绍，在学习了if和else语句后，我们可以介绍了 <figure class="highlight plain"><figcaption><span>? (expr2) : (expr3)``` 当expr1条件为真时，值为expr2，否则值为expr3 下面的代码可以代替前面的```if else```语句 ```echo $dir == ‘west’ ? ‘西’ : ‘其它方向’;```</span></figcaption><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">多个条件组合</div></pre></td></tr></table></figure></p>
<p>if ($dir == ‘west’) {        echo “西”;} else {    if ($dir == ‘east’) {        echo “东”;    } else {        if ($dir == ‘north’) {            echo “北”;        } else {            if ($dir == ‘sourth’) {                echo “南”;            } else {                echo “未知”;            }        }    }}<br>```</p>
<h2 id="switch语句"><a href="#switch语句" class="headerlink" title="switch语句"></a>switch语句</h2><p>switch 语句类似于具有同一个表达式的一系列 if 语句 每个case会依次判断，expr与expr1..n是否相等，如果相等则执行对应的statement，如果最后有break，则执行完成后跳出switch语句 default是在所有case都无法满足的情况下默认执行的操作<br>switch (expr) { case expr1: statement; break; case expr2: statement; break; …… default: statement; }</p>
<h2 id="数组"><a href="#数组" class="headerlink" title="数组"></a>数组</h2><p>数组提供了一种快速，方便地管理一组相关数据的方法，是php程序设计中的重要内容。 php中将数组分为一维数组，二维数组和多维数组，但无论是一维还是多维，可以统一将数组分为数字索引数组和关联数组两种。</p>
<h2 id="索引数组"><a href="#索引数组" class="headerlink" title="索引数组"></a>索引数组</h2><p>这是最常见的数组类型，绝大多数编程语言都有数字索引数组 我们可以使用array()来初始化数组，每个数组元素之间使用逗号分隔 $names = array();$names = array(‘andy’, ‘tom’, ‘jack’);<br>第一个是一个空数组，第二个数组的元素个数是3 PHP 5.4之后，数组的初始化可以使用更简洁的方式 $names = [];$names = [‘andy’, ‘tom’, ‘jack’];</p>
<h2 id="count函数"><a href="#count函数" class="headerlink" title="count函数"></a>count函数</h2><p>我们可以使用count函数来统计数组中元素的个数 int count ( mixed $var [, int $mode = COUNT_NORMAL ] ) echo count($names); 第二跟个参数，我们会在介绍数组维度时学习</p>
<h2 id="打印数组"><a href="#打印数组" class="headerlink" title="打印数组"></a>打印数组</h2><p>我们一般使用print_r来打印数组（当然用var_dump也可以，但是结构上不清晰） bool print_r ( mixed $expression [, bool $return ] ) 请尝试打印 print_r($names); 当第二个参数为true时，print_r不会直接打印数组，而是将打印的内容作为字符串返回 echo print_r($names, true);<br>获取数组元素<br>索引数组中的每个元素都有一个自增长的序号，默认情况下，0表示第一个元素，对于 $names = [‘andy’, ‘tom’, ‘jack’]; 我们可以使用数组变量名后面加方括号的方式来获取数组中的元素，譬如，用$names[0]来获取到andy，同理$names[2]代表jack</p>
<h2 id="关联数组"><a href="#关联数组" class="headerlink" title="关联数组"></a>关联数组</h2><p>$info = [    ‘name’ =&gt; ‘andy’,     ‘age’ =&gt; 18,     ‘gender’ =&gt; ‘male’]; 关联数组使用数字下标是无法获取数据的，譬如$info[0]的值是空，我们需要使用键作为下标$info[‘age’]的值是18</p>
<h2 id="数组的维度：一维"><a href="#数组的维度：一维" class="headerlink" title="数组的维度：一维"></a>数组的维度：一维</h2><p>$arr = [‘王刚’, ‘张丽’, ‘刘伟’]; 假设数组变量名为$arr，获取“张丽”的方式：$arr[1]<br>多维数组<br>超过一维的数组，我们都可以称为多维数组 我们需要明白，数组不一定就是一个下标和值的简单列表，实际上，数组中的每个元素还可以是另一个数组 因此如果一维数组中的数组元素又是一个数组，那么它就成为了二维数组</p>
<h2 id="数组的维度：二维"><a href="#数组的维度：二维" class="headerlink" title="数组的维度：二维"></a>数组的维度：二维</h2><p>$arr = [    [‘王刚’, ‘张丽’, ‘刘伟’],    [‘孙丽’, ‘李强’, ‘李国庆’],    [‘赵园园’, ‘丁丽丽’]]; echo count($arr);echo count($arr, true);<br>$arr = [    [        [‘王刚’, ‘张丽’, ‘刘伟’],        [‘孙丽’, ‘李强’, ‘李国庆’],        [‘赵园园’, ‘丁丽丽’]    ],    [        [‘宋红’, ‘马小丽’],        [‘张颖’, ‘刘军’, ‘黄涛’],        [‘杜磊’, ‘朱婷婷’]    ],]; echo count($arr);echo count($arr, true);</p>
<h2 id="循环"><a href="#循环" class="headerlink" title="循环"></a>循环</h2><p>在程序开发中总会有一些规律性的重复操作 我们需要让一段代码块重复的执行，譬如： 输出重复的文字（构造表格）； 对一组数据执行相同的计算（数组遍历）； 操作失败后的再次执行…… 循环都是由循环体和循环条件组成，循环体代表需要重复执行的代码快，而循环条件代表循环终止的依据</p>
<h2 id="for循环"><a href="#for循环" class="headerlink" title="for循环"></a>for循环</h2><p>for循环实际上可以看作是一个紧凑、简洁版的while循环 for (expr1; expr2; expr3) statement for循环有三个表达式 第一个表达式expr1在循环开始的时候只执行一次 第二个表达式expr2在循环体的每次循环开始的时候执行，如果执行的结果是true，循环继续进行，如果发现是false，循环结束 第三个表达式expr3在循环体的每次循环结束的时候执行</p>
<h2 id="foreach循环"><a href="#foreach循环" class="headerlink" title="foreach循环"></a>foreach循环</h2><p>实际上PHP还有一个特殊的循环语句，这个循环语句是专门用来遍历数组的 foreach (array_variable as val) statement array_variable代表一个数组变量，在每次循环执行时，每个元素的值会被临时赋给变量val，statement语句每次获取到的val的值都不一样，体会一下下面的代码 foreach ($arr as $item) {  echo “&lt;” . $item . “&gt;”;}</p>
<h2 id="foreach获取下标的值"><a href="#foreach获取下标的值" class="headerlink" title="foreach获取下标的值"></a>foreach获取下标的值</h2><p>foreach还有另外一种用法，定义如下 foreach (array_variable as key =&gt; val) statement key代表数组的下标，val代表数组的值，那么对于数字下标数组来说，每次循环中key的值就是从0开始子增长的数字。 那么对于关联数组呢？大家请自行尝试</p>
<h2 id="break和continue"><a href="#break和continue" class="headerlink" title="break和continue"></a>break和continue</h2><p>如果在循环的代码块中希望停止代码的执行，我们可以使用break或者continue break 跳出循环，并且循环不再执行 continue 跳出当前循环，循环继续执行，进入下一次循环 这就跟我们下象棋一样，有些人棋品不好，眼看要输了，掀了棋盘，这就是break。 还有的人心态很好，眼看要输了，后面也甭下了，认输再来一局，这就是continue。</p>
<h2 id="类的静态函数-可以不用实例化调用！"><a href="#类的静态函数-可以不用实例化调用！" class="headerlink" title="类的静态函数 可以不用实例化调用！"></a>类的静态函数 可以不用实例化调用！</h2>
      
    </div>

    <div>
      
        

      
    </div>

    <div>
      
        
  <div style="padding: 10px 0; margin: 20px auto; width: 90%; text-align: center;">
    <div>坚持原创技术分享，您的支持将鼓励我继续创作！</div>
    <button id="rewardButton" disable="enable" onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}">
      <span>赏</span>
    </button>
    <div id="QR" style="display: none;">
      
        <div id="wechat" style="display: inline-block">
          <img id="wechat_qr" src="/uploads/weixin.jpg" alt="韩月 WeChat Pay"/>
          <p>微信打赏</p>
        </div>
      
      
        <div id="alipay" style="display: inline-block">
          <img id="alipay_qr" src="/uploads/zhiply.jpg" alt="韩月 Alipay"/>
          <p>支付宝打赏</p>
        </div>
      
    </div>
  </div>


      
    </div>

    <div>
      
        

      
    </div>

    <footer class="post-footer">
      
        <div class="post-tags">
          
            <a href="/tags/PHP/" rel="tag"># -PHP</a>
          
        </div>
      

      
        
      

      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
              <a href="/2017/06/08/LinuxServer/" rel="next" title="Linux LNMP服务器搭建教程">
                <i class="fa fa-chevron-left"></i> Linux LNMP服务器搭建教程
              </a>
            
          </div>

          <span class="post-nav-divider"></span>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/2017/06/08/Linuxtree/" rel="prev" title="LINUX 目录结构">
                LINUX 目录结构 <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </article>



    <div class="post-spread">
      
    </div>
  </div>


          </div>
          


          
  <div class="comments" id="comments">
    
      <div id="disqus_thread">
        <noscript>
          Please enable JavaScript to view the
          <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a>
        </noscript>
      </div>
    
  </div>


        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap" >
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview">
            站点概览
          </li>
        </ul>
      

      <section class="site-overview sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
          <img class="site-author-image" itemprop="image"
               src="/uploads/avatars.gif"
               alt="韩月" />
          <p class="site-author-name" itemprop="name">韩月</p>
           
              <p class="site-description motion-element" itemprop="description">饮食习惯：酸辣甜、不能吃冷食喝凉水,会拉肚子。<br/>身材秘诀：吃得多，拉得也多。 <br>休闲嗜好：摄影、上网、睡觉、看恐怖惊悚片（我热爱科学，不惧鬼神）、发呆、流浪（更喜欢心在旅行，喜欢一人上路的洒脱、喜欢坐在热闹的集市看人来人往</p>
          
        </div>
        <nav class="site-state motion-element">

          
            <div class="site-state-item site-state-posts">
              <a href="/archives">
                <span class="site-state-item-count">15</span>
                <span class="site-state-item-name">日志</span>
              </a>
            </div>
          

          

          
            
            
            <div class="site-state-item site-state-tags">
              
                <span class="site-state-item-count">18</span>
                <span class="site-state-item-name">标签</span>
              
            </div>
          

        </nav>

        

        <div class="links-of-author motion-element">
          
            
              <span class="links-of-author-item">
                <a href="https://github.com/aidieq" target="_blank" title="GitHub">
                  
                    <i class="fa fa-fw fa-github"></i>
                  
                  GitHub
                </a>
              </span>
            
              <span class="links-of-author-item">
                <a href="http://weibo.com/your-user-name" target="_blank" title="微博">
                  
                    <i class="fa fa-fw fa-globe"></i>
                  
                  微博
                </a>
              </span>
            
          
        </div>

        
        

        
        

        


      </section>

      
      <!--noindex-->
        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">

            
              
            

            
              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#php必须掌握的基础知识"><span class="nav-number">1.</span> <span class="nav-text">php必须掌握的基础知识</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#字符串"><span class="nav-number">1.1.</span> <span class="nav-text">字符串</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#单引号和双引号"><span class="nav-number">1.2.</span> <span class="nav-text">单引号和双引号</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#运算与赋值"><span class="nav-number">1.3.</span> <span class="nav-text">运算与赋值</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#取余操作"><span class="nav-number">1.4.</span> <span class="nav-text">取余操作%</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#递增和递减"><span class="nav-number">1.5.</span> <span class="nav-text">递增和递减</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#字符串运算符"><span class="nav-number">1.6.</span> <span class="nav-text">字符串运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#sprintf"><span class="nav-number">1.7.</span> <span class="nav-text">sprintf</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#赋值运算符"><span class="nav-number">1.8.</span> <span class="nav-text">赋值运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#加减乘除赋值"><span class="nav-number">1.9.</span> <span class="nav-text">加减乘除赋值</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#字符串赋值"><span class="nav-number">1.10.</span> <span class="nav-text">字符串赋值.=</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#比较运算符"><span class="nav-number">1.11.</span> <span class="nav-text">比较运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#比较运算符-1"><span class="nav-number">1.12.</span> <span class="nav-text">比较运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#逻辑运算符"><span class="nav-number">1.13.</span> <span class="nav-text">逻辑运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#条件语句"><span class="nav-number">1.14.</span> <span class="nav-text">条件语句</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#三目运算符"><span class="nav-number">1.15.</span> <span class="nav-text">三目运算符</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#switch语句"><span class="nav-number">1.16.</span> <span class="nav-text">switch语句</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#数组"><span class="nav-number">1.17.</span> <span class="nav-text">数组</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#索引数组"><span class="nav-number">1.18.</span> <span class="nav-text">索引数组</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#count函数"><span class="nav-number">1.19.</span> <span class="nav-text">count函数</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#打印数组"><span class="nav-number">1.20.</span> <span class="nav-text">打印数组</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#关联数组"><span class="nav-number">1.21.</span> <span class="nav-text">关联数组</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#数组的维度：一维"><span class="nav-number">1.22.</span> <span class="nav-text">数组的维度：一维</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#数组的维度：二维"><span class="nav-number">1.23.</span> <span class="nav-text">数组的维度：二维</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#循环"><span class="nav-number">1.24.</span> <span class="nav-text">循环</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#for循环"><span class="nav-number">1.25.</span> <span class="nav-text">for循环</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#foreach循环"><span class="nav-number">1.26.</span> <span class="nav-text">foreach循环</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#foreach获取下标的值"><span class="nav-number">1.27.</span> <span class="nav-text">foreach获取下标的值</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#break和continue"><span class="nav-number">1.28.</span> <span class="nav-text">break和continue</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#类的静态函数-可以不用实例化调用！"><span class="nav-number">1.29.</span> <span class="nav-text">类的静态函数 可以不用实例化调用！</span></a></li></ol></li></ol></div>
            

          </div>
        </section>
      <!--/noindex-->
      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright" >
  
  &copy;  2013 - 
  <span itemprop="copyrightYear">2017</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">韩月</span>
</div>


<div class="powered-by">
  由 <a class="theme-link" href="https://hexo.io">Hexo</a> 强力驱动
</div>

<div class="theme-info">
  主题 -
  <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">
    NexT.Muse
  </a>
</div>


        

        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  












  
  <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>

  
  <script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>

  
  <script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>


  


  <script type="text/javascript" src="/js/src/utils.js?v=5.1.1"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=5.1.1"></script>



  
  

  
  <script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.1"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.1"></script>



  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.1"></script>



  


  

    
      <script id="dsq-count-scr" src="https://.disqus.com/count.js" async></script>
    

    
      <script type="text/javascript">
        var disqus_config = function () {
          this.page.url = 'http://yoursite.com/2017/06/08/phplore/';
          this.page.identifier = '2017/06/08/phplore/';
          this.page.title = 'php必须掌握的基础知识';
        };
        var d = document, s = d.createElement('script');
        s.src = 'https://.disqus.com/embed.js';
        s.setAttribute('data-timestamp', '' + +new Date());
        (d.head || d.body).appendChild(s);
      </script>
    

  




	





  





  





  






  





  

  
  <script src="https://cdn1.lncld.net/static/js/av-core-mini-0.6.1.js"></script>
  <script>AV.initialize("NKTDaSdUhTnAkDGbSDu7T9Vc-gzGzoHsz", "Q6OLnPhXA67rwYezNFkthzAw");</script>
  <script>
    function showTime(Counter) {
      var query = new AV.Query(Counter);
      var entries = [];
      var $visitors = $(".leancloud_visitors");

      $visitors.each(function () {
        entries.push( $(this).attr("id").trim() );
      });

      query.containedIn('url', entries);
      query.find()
        .done(function (results) {
          var COUNT_CONTAINER_REF = '.leancloud-visitors-count';

          if (results.length === 0) {
            $visitors.find(COUNT_CONTAINER_REF).text(0);
            return;
          }

          for (var i = 0; i < results.length; i++) {
            var item = results[i];
            var url = item.get('url');
            var time = item.get('time');
            var element = document.getElementById(url);

            $(element).find(COUNT_CONTAINER_REF).text(time);
          }
          for(var i = 0; i < entries.length; i++) {
            var url = entries[i];
            var element = document.getElementById(url);
            var countSpan = $(element).find(COUNT_CONTAINER_REF);
            if( countSpan.text() == '') {
              countSpan.text(0);
            }
          }
        })
        .fail(function (object, error) {
          console.log("Error: " + error.code + " " + error.message);
        });
    }

    function addCount(Counter) {
      var $visitors = $(".leancloud_visitors");
      var url = $visitors.attr('id').trim();
      var title = $visitors.attr('data-flag-title').trim();
      var query = new AV.Query(Counter);

      query.equalTo("url", url);
      query.find({
        success: function(results) {
          if (results.length > 0) {
            var counter = results[0];
            counter.fetchWhenSave(true);
            counter.increment("time");
            counter.save(null, {
              success: function(counter) {
                var $element = $(document.getElementById(url));
                $element.find('.leancloud-visitors-count').text(counter.get('time'));
              },
              error: function(counter, error) {
                console.log('Failed to save Visitor num, with error message: ' + error.message);
              }
            });
          } else {
            var newcounter = new Counter();
            /* Set ACL */
            var acl = new AV.ACL();
            acl.setPublicReadAccess(true);
            acl.setPublicWriteAccess(true);
            newcounter.setACL(acl);
            /* End Set ACL */
            newcounter.set("title", title);
            newcounter.set("url", url);
            newcounter.set("time", 1);
            newcounter.save(null, {
              success: function(newcounter) {
                var $element = $(document.getElementById(url));
                $element.find('.leancloud-visitors-count').text(newcounter.get('time'));
              },
              error: function(newcounter, error) {
                console.log('Failed to create');
              }
            });
          }
        },
        error: function(error) {
          console.log('Error:' + error.code + " " + error.message);
        }
      });
    }

    $(function() {
      var Counter = AV.Object.extend("Counter");
      if ($('.leancloud_visitors').length == 1) {
        addCount(Counter);
      } else if ($('.post-title-link').length > 1) {
        showTime(Counter);
      }
    });
  </script>



  

  

  

  

</body>
</html>
